From: Matthias Clasen Date: Tue, 15 Jul 2008 20:35:48 +0000 (+0000) Subject: Use gdk_pixbuf_copy_area() to copy between pixbufs. Reported by Andrey X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1~1^2~428^2^2~31642 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=c70c74c9b86dc17f0baa10a889770ba31b51163d;p=gtk4.git Use gdk_pixbuf_copy_area() to copy between pixbufs. Reported by Andrey * gdk-pixbuf-utils.c (gdk_pixbuf_saturate_and_pixelate): Use gdk_pixbuf_copy_area() to copy between pixbufs. Reported by Andrey Tsyvarev svn path=/trunk/; revision=20840 --- diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog index 62ed4582c1..d9ed0d27f2 100644 --- a/gdk-pixbuf/ChangeLog +++ b/gdk-pixbuf/ChangeLog @@ -1,3 +1,11 @@ +2008-07-15 Matthias Clasen + + Bug 543085 – gdk_pixbuf_saturate_and_pixelate may corrupt memory + + * gdk-pixbuf-utils.c (gdk_pixbuf_saturate_and_pixelate): + Use gdk_pixbuf_copy_area() to copy between pixbufs. + Reported by Andrey Tsyvarev + 2008-07-15 Matthias Clasen * gdk-pixbuf-io.c: Move the check for wheter to use diff --git a/gdk-pixbuf/gdk-pixbuf-util.c b/gdk-pixbuf/gdk-pixbuf-util.c index 53e32403b1..f682aec9ba 100644 --- a/gdk-pixbuf/gdk-pixbuf-util.c +++ b/gdk-pixbuf/gdk-pixbuf-util.c @@ -190,9 +190,10 @@ gdk_pixbuf_saturate_and_pixelate(const GdkPixbuf *src, if (saturation == 1.0 && !pixelate) { if (dest != src) - memcpy (gdk_pixbuf_get_pixels (dest), - gdk_pixbuf_get_pixels (src), - gdk_pixbuf_get_height (src) * gdk_pixbuf_get_rowstride (src)); + gdk_pixbuf_copy_area (src, 0, 0, + gdk_pixbuf_get_width (src), + gdk_pixbuf_get_height (src), + dest, 0, 0); } else { int i, j, t; int width, height, has_alpha, src_rowstride, dest_rowstride, bytes_per_pixel;